//package com.tangyuan.servicegateway.route.rule.validator.impl;
//
//import com.alibaba.cloud.commons.lang.StringUtils;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.TypeReference;
//import com.tangyuan.servicegateway.route.rule.validator.AddRuleValidator;
//import org.springframework.data.redis.core.StringRedisTemplate;
//
//import java.util.List;
//
///**
// * 与存放Redis数据进行规则校验
// * @author K
// */
//public class RedisAddRuleValidator implements AddRuleValidator {
//
//    private final StringRedisTemplate redisTemplate;
//
//    public RedisAddRuleValidator(StringRedisTemplate redisTemplate) {
//        this.redisTemplate = redisTemplate;
//    }
//
//    @Override
//    @RedisLock(constantKey = "pub-gateway:lock", isWaitForLock = false)
//    public boolean isAllMatchServiceNams(List<String> serviceNames) {
//        String key = "service-gateway:addRule";
//        String json = redisTemplate.opsForValue().get(key);
//        if (StringUtils.isBlank(json)) {
//            redisTemplate.opsForValue().set(key, JSON.toJSONString(serviceNames));
//            return false;
//        }
//
//        List<String> list = JSON.parseObject(json, new TypeReference<>() {});
//        if (list.containsAll(serviceNames)) {
//            return true;
//        }
//
//        redisTemplate.opsForValue().set(key, JSON.toJSONString(serviceNames));
//        return false;
//    }
//}
